package com.chen;

import java.io.File;
import java.io.IOException;

public class FileDemo {
    public static void main(String[] args) {
        // 目标：使用递归删除文件夹
        //getFile();
        File file = new File("E:/fileDemo");
        try{
            deleteFile(file);
            System.out.println("删除成功！");
        } catch (Exception e){
            System.out.println("失败！");
            e.printStackTrace();
        }
    }

    /**
     * 根据文件对象删除文件
     * @param file
     * @throws IOException
     */
    public static void deleteFile(File file) throws IOException {
        // 进行极端判断
        if (!file.exists() || file == null) {
            return;
        }
        if (file.isFile()) {
            file.delete();
            return;
        }
        // 获取文件目录
        File[] files = file.listFiles();
        if (files != null) {
            for (File f : files) {
                deleteFile(f);
            }
            // 重点：每次遍历完了之后要删除父文件
            file.delete();
        }

    }

    /**
     * 创建测试文件
     * @throws IOException
     */
    public static void getFile() throws IOException {
        // 1.创建文件夹
        File file = new File("E:/fileDemo/test/jy/txt");
        System.out.println(file.exists());
        // 创建多级文件夹
        file.mkdirs();
        System.out.println(file.exists());
        // 创建文件
        File file1 = new File("E:/fileDemo/test/txt.md");
        File file2 = new File("E:/fileDemo/test/jy/txt.md");
        System.out.println(file1.exists());
        file1.createNewFile();
        System.out.println(file1.exists());
        System.out.println(file2.exists());
        file2.createNewFile();
        System.out.println(file2.exists());
    }
}
